#ifndef LABEL_HPP
#define LABEL_HPP

/********************************************************************
	created:	2011/01/16
	filename: 	E:\C++\Red\src\Graphics\Gui\Label.hpp
	author:		Red
	
	purpose:	Widget implementation of a sf::Text
*********************************************************************/

#include "MovableWidget.hpp"
#include "SFML/Graphics/Text.hpp"

namespace red {
	namespace ui {
		class REDAPI Label : public MovableWidget{
		public:
			/// Constructor
			/// @param pText : Text displayed by the Label
			Label(const std::string &pText = "");

			// Getters
				/// Returns the Label's text
				std::string GetText() const { return mText.GetString(); }



			// Setters
				/// Sets the Label's text
				void SetText(const std::string &pText);

				/// Sets the Label's text size
				void SetTextSize(u32 pSize);

				/// Sets the label's text's color
				void SetTextColor(const Color &pColor) { mText.SetColor(RedToSFMLColor(pColor)); }

				/// Sets the label's background color
				void SetBackgroundColor(const Color &pColor) { SetColor(RedToSFMLColor(pColor)); }

				/// Sets the label's Font
				void SetFont(const std::string &pFont) {}

		protected:
			/// Overloaded OnRender() function from Widget
			virtual void OnRender(sf::RenderTarget &pTarget, sf::Renderer &pRenderer) const;

			/// Overloaded function from Widget
			virtual void OnUpdate(WidgetParameter pParam);

		private:
			sf::Text	mText;		///< String displayed on Label
		};
	}
}
#endif // LABEL_HPP